// 导入路由
import { Message } from 'element-ui'
import router from './router'
// 导入仓库
import store from './store'
// import { removeToken } from './utils/auth'

// 声明白名单
const whiteList = ['/login', '/404']
router.beforeEach(async(to, from, next) => {
  const _token = store.getters.token
  if (_token) {
    // 判断用户信息
    // 在login页
    if (to.path === '/login' && store.getters.isLogin) {
      // 有token 有用户信息 就不用登录 直接去首页
      return next('/')
    }
    // 有用户信息 有token
    if (store.getters.isLogin) {
      // 直接放行
      return next()
    }

    try {
      // 用户信息不存在 token存在 尝试获取用户信息
      await store.dispatch('user/getUserInfo')
      console.log(store.getters.userInfo)
      if (to.path === '/login') {
        return next('/')
      }
      return next()
    } catch (error) {
      // 用户信息不存在 token不存在
      console.log(error)
      store.dispatch('user/logout')
      Message.error('请重新登录')
      if (to.path === '/login') {
        return next()
      }
      return next('/login?redirect=' + to.fullPath)
    }
  }

  if (whiteList.includes(to.path)) {
    return next()
  }
  return next('/login')
})
